package cn.iocoder.yudao.module.ao.controller.admin.patrol.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 巡班违纪记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PatrolRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28238")
    @ExcelProperty("主键ID")
    private Long id;

    @Schema(description = "上课日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("上课日期")
    private LocalDate classDate;

    @Schema(description = "上课时间段（如 08:00-09:40）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("上课时间段（如 08:00-09:40）")
    private String classTime;

    @Schema(description = "课程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("课程名称")
    private String courseName;

    @Schema(description = "授课老师ID（关联教师表）", requiredMode = Schema.RequiredMode.REQUIRED, example = "8473")
    @ExcelProperty("授课老师ID（关联教师表）")
    private Long teacherId;

    @Schema(description = "授课老师姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("授课老师姓名")
    private String teacherName;

    @Schema(description = "巡班老师ID（关联巡班人员表）", requiredMode = Schema.RequiredMode.REQUIRED, example = "14738")
    @ExcelProperty("巡班老师ID（关联巡班人员表）")
    private Long patrolTeacherId;

    @Schema(description = "巡班老师姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @ExcelProperty("巡班老师姓名")
    private String patrolTeacherName;

    @Schema(description = "教室名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("教室名称")
    private String classroom;

    @Schema(description = "班级名称", example = "2514班")
    @ExcelProperty("班级名称")
    private String className;

    @Schema(description = "违纪类型（如迟到、玩手机）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("违纪类型（如迟到、玩手机）")
    private String violationType;

    @Schema(description = "违纪详细描述")
    @ExcelProperty("违纪详细描述")
    private String violationDesc;

    @Schema(description = "违纪人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "29804")
    @ExcelProperty("违纪人数")
    private Integer violationCount;

    @Schema(description = "处理状态（0-未处理，1-已处理）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("处理状态（0-未处理，1-已处理）")
    private Integer status;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}